#ifndef PLUUGIN_BULLET
#define PLUUGIN_BULLET

#include <PluginBulletDefine.h>
#include <QtCore/QObject>
#include <QtCore/QString>
#include <QtGui/QIcon>
#include <QtCore/QtPlugin>
#include <Plugin.h>

#include <ObjectInspectorDirectorBullet.h>
#include <SimulationObjectBullet.h>
#include <FileSystemObjectBullet.h>
#include <ClassFactoryObjectBullet.h>
class PluginBullet : public QObject, EDesignerCustomPlugin
{
	Q_OBJECT
		Q_INTERFACES(EDesignerCustomPlugin)
public:

    PluginBullet();
    virtual QString name();
    virtual EDesignerCustomPlugin::PluginType pluginType();

    virtual QSharedPointer<ObjectInspectorDirector> getObjectInspectorDirector();

    virtual QSharedPointer<SimulationObject> getSimulationObject();
    virtual QSharedPointer<FileSystemObject> getFileSystemObject();
    virtual QSharedPointer<ClassFactoryObject> getClassFactoryObject();

private:


    QSharedPointer<ObjectInspectorDirectorBullet> m_directorBullet;
    QSharedPointer<SimulationObjectBullet> m_simObjBullet;
    QSharedPointer<FileSystemObjectBullet> m_fileObjBullet;
    QSharedPointer<ClassFactoryObjectBullet> m_factoryObjBullet;
};

#endif // PLUUGIN_BULLET
